#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Módulos 
import sys, gtk, pygame, utils, objetos
from pygame.locals import *

# Constantes

# Clases
# ---------------------------------------------------------------------
        
class Linea:
	def __init__(self,texto,posx,posy,correcto):
		self.text,self.rect = utils.textotls(texto, posx,posy,16,(50,50,50))
		self.checked = False
		self.correcto = correcto
		self.sonido = pygame.mixer.Sound("sounds/harp.ogg")
		self.sonido.set_volume(0.2)
		if correcto:
			self.image = utils.load_image('images/check.png',True)
			self.img_rect = self.image.get_rect()
			self.img_rect.centerx = self.rect.left-12*utils.RES
			self.img_rect.centery = posy-10*utils.RES

class Numero:
	def __init__(self,texto,posx,posy):
		self.text,self.rect = utils.texto_titulo(texto, posx,posy,(0,0,0))

class Pregunta:
	def __init__(self,texto,posx,posy):
		self.text,self.rect = utils.textotlb(texto, posx,posy,17,(0,0,0))

class Checkbox:
	def __init__(self,posx,posy):
		self.X,self.rect = utils.textodream("x", posx,posy,20,(0,0,0))
		self.V,self.rect = utils.textodream(" ", posx,posy,20,(0,0,0))
		self.checked = False
		self.sonido = pygame.mixer.Sound("sounds/click.wav")
		self.sonido.set_volume(0.2)
		self.posx = posx
		self.posy = posy
	
	def display(self,screen):
		pygame.draw.rect(screen,(0,0,0),(self.posx-7*utils.RES,self.posy-7*utils.RES,16*utils.RES,16*utils.RES),1)
		if self.checked:
			screen.blit(self.X,self.rect)
		else: 
			screen.blit(self.V,self.rect)					
# ---------------------------------------------------------------------
def dibujar(screen,cursor_picture, clock):
    salir = 0
    background_image = utils.load_image('images/fondo0_1.jpg')
    btn_adelante = objetos.BotonAdelante()
    btn_atras = objetos.BotonAtras()
    
    titulo, titulo_rect = utils.textotls("Marcá con una cruz la respuesta correcta", 300*utils.RES, 55*utils.RES,22,(50,50,255))
         
    preg2 = ( Numero('', 230*utils.RES,90*utils.RES),
    Pregunta('5. Los ciudadanos responsables...', 270*utils.RES,90*utils.RES))    
    
    resp2 = ( Linea('a. No arrojan basura en las calles y utilizan el agua responsable y eficientemente.', 408*utils.RES,120*utils.RES,False),
    Linea('b. Arreglan los inodoros que gotean en la casa.', 300*utils.RES,150*utils.RES,False),
    Linea('c. Sacan la basura a la hora que les conviene, sin preocuparse por el problema', 398*utils.RES,180*utils.RES,True),
    Linea('de los desechos en su casa, su escuela y su barrio.', 326*utils.RES,200*utils.RES,True))        
    
    preg3 = ( Numero('', 65*utils.RES,230*utils.RES),
    Pregunta('6. Las empresas amigables con el medio ambiente...', 335*utils.RES,230*utils.RES))    
    
    resp3 = ( Linea('a. No tienen responsabilidad en el cuidado del medio ambiente.', 354*utils.RES,260*utils.RES,False),
    Linea('b. Utilizan los recursos responsablemente y manejan de forma adecuada los desechos.', 424*utils.RES,290*utils.RES,False),
    Linea('c. Al elaborar sus productos no respetan las leyes de protección del medio ambiente.', 421*utils.RES,320*utils.RES,True))
    
    preg1 = ( Numero('', 115*utils.RES,350*utils.RES),
    Pregunta('7. Los Actores Sociales..', 250*utils.RES,350*utils.RES))    
    
    resp1 = ( Linea('a. No tienen responsabilidad en el medio ambiente.', 312*utils.RES,380*utils.RES,False),
    Linea('b. Tienen responsabilidades en los problemas que sufre el medio ambiente y', 392*utils.RES,410*utils.RES,True),
    Linea('deben aportar soluciones y colaborar con ellas.', 314*utils.RES,430*utils.RES,False),
    Linea('c. Deben pensar cómo hacer para que las empresas fabriquen sus productos de', 400*utils.RES,460*utils.RES,False),
    Linea('la manera más barata posible, sin importar si perjudican o no los recursos.', 400*utils.RES,480*utils.RES,False))    
    
    cuadro = pygame.draw.rect(screen,(50,50,255),(100*utils.RES,150*utils.RES,400*utils.RES,100*utils.RES))
    
    check_list1 = (Checkbox(135*utils.RES,120*utils.RES),#1,1
    Checkbox(135*utils.RES,150*utils.RES),#1,2
    Checkbox(135*utils.RES,180*utils.RES))#1,3
    check_list2 = (Checkbox(135*utils.RES,260*utils.RES),#2,1
    Checkbox(135*utils.RES,290*utils.RES),#2,2
    Checkbox(135*utils.RES,320*utils.RES))#2,3
    check_list3 = (Checkbox(135*utils.RES,380*utils.RES),#3,1
    Checkbox(135*utils.RES,410*utils.RES),#3,2
    Checkbox(135*utils.RES,460*utils.RES))#3,3
    
    while salir == 0:
    
    	# Pump GTK messages.sub
		while gtk.events_pending():
			gtk.main_iteration()
			
		for eventos in pygame.event.get():
			if eventos.type == QUIT:
				sys.exit(0)
			elif eventos.type == pygame.VIDEORESIZE:
			   pygame.display.set_mode(eventos.size, pygame.RESIZABLE)	
			elif eventos.type == MOUSEBUTTONDOWN:
				if btn_adelante.rect.collidepoint(pygame.mouse.get_pos()):
					salir = 3
					btn_adelante.sonido.play()	
				elif btn_atras.rect.collidepoint(pygame.mouse.get_pos()):
					salir = 1				
					btn_atras.sonido.play()	
				for palabra in check_list1:
					if palabra.rect.collidepoint(pygame.mouse.get_pos()):	
						#print("Click")
						for palabra2 in check_list1:
							palabra2.checked = False
						palabra.checked = True
				for palabra in check_list2:
					if palabra.rect.collidepoint(pygame.mouse.get_pos()):	
						#print("Click")
						for palabra2 in check_list2:
							palabra2.checked = False
						palabra.checked = True
				for palabra in check_list3:
					if palabra.rect.collidepoint(pygame.mouse.get_pos()):	
						#print("Click")
						for palabra2 in check_list3:
							palabra2.checked = False
						palabra.checked = True				
						
			

		# Realiza la animacion del texto
		
		screen.blit(background_image, (0, 0))
		screen.blit(titulo, titulo_rect)
		for palabra in preg1:
			screen.blit(palabra.text, palabra.rect)
		for palabra in resp1:
			screen.blit(palabra.text, palabra.rect)
		for palabra in preg2:
			screen.blit(palabra.text, palabra.rect)
		for palabra in resp2:
			screen.blit(palabra.text, palabra.rect)
		for palabra in preg3:
			screen.blit(palabra.text, palabra.rect)
		for palabra in resp3:
			screen.blit(palabra.text, palabra.rect)
		for checkbox in check_list1:
			checkbox.display(screen)	
		for checkbox in check_list2:
			checkbox.display(screen)	
		for checkbox in check_list3:
			checkbox.display(screen)			
		screen.blit(btn_adelante.image, btn_adelante.rect)
		screen.blit(btn_atras.image, btn_atras.rect)
		screen.blit(cursor_picture, pygame.mouse.get_pos())
		pygame.display.flip()

		# Try to stay at 30 FPS
		clock.tick(30)
                	 
    return salir

# This function is called when the game is run directly from the command line:
# ./TestGame.py 
def main():
	
	pygame.init()
	screen = pygame.display.set_mode((int(800*utils.RES), int(520*utils.RES)), pygame.RESIZABLE) #pygame.display.get_surface() #

	# Fake a Sugar cursor for the pyGame canvas area
	pygame.mouse.set_cursor((8,8),(0,0),(0,0,0,0,0,0,0,0),(0,0,0,0,0,0,0,0))
	cursor_picture = pygame.image.load('images/standardcursor.png')
	cursor_picture.convert_alpha() 
	clock = pygame.time.Clock()
	dibujar(screen,cursor_picture,clock)

if __name__ == '__main__':
   main()
